<?php

class UserModel extends Model
{
    protected $tableName = 'user_psd';
    protected $fields = array(
        'id', 'acct_no', 'tel', 'psd', 'disable', '_pk' => 'id', '_autoinc' => true
    );
    protected $_map = array(
        'acctNo' => 'acct_no', // 把表单中acctNo映射到数据表的acct_no字段
    );


    //TinkPhp规定当校验规则是'callback'时,校验函数必须写在对应的Model里面,必须是public或者protected的
    protected function checkTel($tel)
    {
        if (preg_match('/^1(?:(3\d)|(5[0-35-9])|(7[06-8])|(8[0-9])|(4[57]))\d{8}$/', $tel)) {
            return true;
        }
        return false;
    }

    protected function checkPsd($psd)
    {
        if (preg_match('/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]+$/i', $psd)) {
            return true;
        }
        return false;
    }

    private function checkAcctNoField($acctNo)
    {
        if (prge_match('/^(?![a-zA-Z]+$)[0-9A-Za-z]+$/i', $acctNo) && strlen($acctNo) > 7 && strlen($acctNo) < 17)
            return true;
        return false;
    }

    protected function checkAcctNo($acctNo)
    {
        if ($this->checkTel($acctNo) && strlen($acctNo) === 11)
            return true;
        return $this->checkAcctNoField($acctNo);
    }
}

?>